Distributed computing allows a local machine to take advantage of network resources. For example, one type of distributed computing is cloud computing. Cloud computing is location-independent computing. In cloud computing, shared servers provide resources, software, and data to computers and other devices on demand. Cloud computing is a result of virtualization, service-oriented architecture, and utility computing. Cloud computing typically involves over-the-Internet provision of resources.
Certain programming languages, such as JAVA and C#, may operate on virtual machines. JAVA may use the JAVA Virtual Machine and C# may use the Common Language Runtime of the .NET Framework. The use of a virtual machine provides certain forms of protection when JAVA or C# code is executed. However, these virtual machines disfavor ahead-of-time compilation that produces native machine language code. Native machine language code can increase performance by directly accessing system resources in optimized ways.
However, the power of machine language and its ability to directly access system resources present a security risk. Unless protective measures are taken, machine language may access system resources in undesirable ways that may jeopardize system security or stability.